Wizardia

by: tlcrack

This game was made for my level 2 project at The League of Amazing Programmers.
Click here to download and play!


1. Why I Made This Game

I wanted to make a game with a definitive story and some kind of adventure. I was torn between a platforming-type game and one with levels the player could walk around in, but eventually I figured the non-platforming level format could better support a story.


2. What I Learned

I realized from user testing that the interval I created for how often a certain enemy attacks made the game impossible. I also realized I could improve some aesthetics, like centering title text and deleting testing print messages.


3. Architecture of My Game

The GameRunner class runs the code by calling on other classes in its main method. GamePanel gives the structure, limitations, and appearances of the game. GameObject is a format for everything that moves in the game, including the player and the enemies, which are used in Object Manager to make the interacting parts of the game.


4. Technical Implementation

One of the most difficult things to implement into my game was the enemy's ability to constantly move toward the player. This was hard because it required trigonometry, which is currently above my grade level. Adding timers to the boss fight was also hard, because of the difficulties I had with when they should stop and start. I am especially proud of having been able to shrink the wizard beam's hitbox, because it took a lot of trial and error.


5. Most Challenging Part

The hardest part of this project was the debugging, especially of the boss fight and when the boss was hit.


6. Future Fixes and Updates

If I kept working on this game, I would add multiple stages to the boss fight, and add a health bar. I also might add sound effects, even though I personally wouldn't be able to see them.